package com.tiancheng.trade.commom.web.model.request;

import jakarta.validation.constraints.NotEmpty;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

/**
 * 调用支付中心退款数据
 *
 * @author kellen
 * @date 2024/3/30
 */
@Getter
@Setter
public class RefundDTO {

    // 用户id
    private String uid;
    // 退款单号
    private String paymentId;
    // 上一笔支付流水号
    private String payFlowId;
    // 退款金额
    private Integer amount;
    // 订单总金额
    private Integer orderAmount;
    // 退款原因
    private String reason;
    // 优惠总金额
    private Integer discount;
    // 子订单
    private List<SubOrderRefundDTO> subOrders;

    @Getter
    @Setter
    public static class SubOrderRefundDTO {

        // 子订单号
        private String subOrderId;
        /** 对应的支付子流水号 */
        @NotEmpty
        private String subPayFlowId;
        // 子退款单号
        private String subPaymentId;
        // 子订单退款金额
        private Integer amount;
        // 子订单金额
        private Integer orderAmount;
        // 子订单优惠券金额
        private Integer discount;
    }
}
